/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.Timer;

/**
 *
 * @author Gean
 */
public class Janela extends JPanel implements ActionListener {

    private Timer temporizador;
    private Rockeiro rockeiro;

    public Janela() {

        addKeyListener(new eventosTeclado());
        setFocusable(true);
        setBackground(Color.BLACK);
        setDoubleBuffered(true);

        rockeiro = new Rockeiro();

        temporizador = new Timer(5, this);
        temporizador.start();
    }

    public void paint(Graphics g) {
        super.paint(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(rockeiro.getImagem(), rockeiro.getPosicaoX(), rockeiro.getPosicaoY(), this);

        Toolkit.getDefaultToolkit().sync();
        g.dispose();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        rockeiro.iniciaMovimentacao();
      
        repaint();  
    }
    
    private class eventosTeclado extends KeyAdapter {

        @Override
        public void keyReleased(KeyEvent e) {
            KeyEvent tecla = e;

            if (tecla.getKeyCode() == KeyEvent.VK_RIGHT) {
                rockeiro.getTemporizador().stop();
                rockeiro.setDeslocamentoX(0);
                rockeiro.setContatorTrocaImagem(1);
                rockeiro.alteraSprite(rockeiro.imgRockeiroParadoDireita);

            } else if (tecla.getKeyCode() == KeyEvent.VK_LEFT) {
                rockeiro.getTemporizador().stop();
                rockeiro.setDeslocamentoX(0);
                rockeiro.setContatorTrocaImagem(1);
                rockeiro.alteraSprite(rockeiro.imgRockeiroParadoEsquerda);

            }
        }

        @Override
        public void keyPressed(KeyEvent e) {
            KeyEvent tecla = e;

            if (tecla.getKeyCode() == KeyEvent.VK_RIGHT) {
                rockeiro.setContatorTrocaImagem(1);
                rockeiro.setAndandoParaDireita(true);
                rockeiro.setAndandoParaEsquerda(false);
                rockeiro.getTemporizador().start();

            } else if (tecla.getKeyCode() == KeyEvent.VK_LEFT) {
                rockeiro.setContatorTrocaImagem(1);
                rockeiro.setAndandoParaDireita(false);
                rockeiro.setAndandoParaEsquerda(true);
                rockeiro.getTemporizador().start();
            }
        }
    }
}
